Data processing systems or data processors, such as microcontroller integrated circuits, may have an one or more internal buses which transfers address, data, and/or control information during internal bus cycles. In order to facilitate hardware testing and software program debugging, it is useful for the microcontroller to provide internal bus cycle information to the microcontroller's external bus. In addition, it may be useful to provide external visibility for other portions of a data processing system, such as the contents of registers or the results of self test features. In this manner, test and debug equipment external to the microcontroller is able to monitor the address, data, and control information which is being transferred across the internal bus within a microcontroller. Thus, the activity of the internal bus is made visible to the world outside of the integrated circuit. In addition, it may be particularly difficult to provide the necessary external visibility required for maintenance, servicing, and/or software upgrades once an integrated circuit is embedded into a product, e.g. an engine controller, a communication device, a computing device, etc.
A solution was needed to facilitate hardware testing and ease the task of debugging software being executed by a microcontroller, while not significantly impacting the internal operation, speed, and integrated circuit pin count of the microcontroller.